A communications network may be viewed as a functional model made up of three functional “planes”: a data plane, a control plane, and a management plane. This logical division supports separation of functions provided to application programs using the network to convey data, and functions related to network internal operation. Typical application programs send and receive data over the network via the data plane, for example by opening conventional software interfaces such as “sockets” that transmit and receive data over the network on behalf of the application using TCP/IP (Transmission Control Protocol/Internet Protocol).
The control plane consists of functions and associated resources used to dynamically perform distributed network control operations. Functions within the control plane relate to dynamic, distributed resource allocation, traffic engineering, load balancing, and performance optimization. Signaling is performed in the control plane, consisting of sending control signals that request specific operations to be performed. For example, control signals may be used to start or stop a transmission, as well as other operations. In telephony systems, one control signal is sent to establish a call, and another is sent to tear down (disconnect) the call. Routing protocols also operate in the control plane, enabling routers to dynamically determine appropriate paths on which data is forwarded through the network, report network changes, share information with other routers in the network, and allow the network to adjust to changing conditions. Examples of protocols that operate within the control plane include GMPLS (Generalized Multiprotocol Label Switching), RSVP (ReSerVation Protocol), and others.
The management plane is “stacked” above the control plane in the network model. During operation, the management plane uses interfaces to the control plane to access functionality provided by the control plane. Management plane operations relate to network global events such as bringing new devices or other resources on line, problem reporting, and error management. Management plane operations are generally more centralized and/or network-wide in comparison with those of the control plane. Accordingly, SLAs (Service Level Agreements) are provided through the management plane. Management plane operations include provisioning operations, such as those performed when setting up a telecommunications service for a particular customer. Protocols operative within the network management plane include SNMP (Simple Network Management Protocol), TL1 (Transaction Language 1), and others.
As application programs have become more complex, they have become more dependent on the operational characteristics of the communications network they use. Accordingly, services provided by the network directly affect the operation and performance of many applications. This is especially true in widely distributed network applications. For example, “grid-computing” (also known as “peer-to-peer” or “distributed” computing) application programs are examples of distributed network applications in which application resources are shared across geographically distributed systems to provide services to users, and that rely heavily on the communication services of the underlying network to operate correctly and efficiently. The socket interface to the data plane provides good support for applications simply needing to send and receive data. However, application programs have limited control over how the data they transmit and receive is handled within the network, and receive only limited feedback regarding errors occurring in the network that affect them. Additionally, application programs have no way of communicating their specific communication requirements to the network in advance of using the network to convey data.
The management and control planes are both capable of determining network resource allocation, and obtaining various types of status from the network. However, in existing systems, functions within the management and control planes must be accessed and used separately. Multiple protocols, both proprietary and standardized, work independently in the control and management planes to monitor and/or report on various specific aspects of the underlying network, interfacing to different layers of the network protocol stack. Typically, APIs (Application Programming Interfaces) are independently provided for operations and protocols associated with the control and management planes. In order for application programs to use these multiple interfaces, they need to understand which functionalities are provided through which protocols in which layers, and for which specific network elements, since different network element types are managed through different protocols. Thus, applications using existing systems are faced with the need to understand and use multiple protocols with regard to multiple network element types, that may be provided by multiple vendors, resulting in a high level of complexity at any application interface to the network outside the data plane. Multiple dedicated management tools are therefore needed, resulting in frequent reliance on static provisioning, or on hands-on management actions performed through network administrators or IT (Information Technology) administration infrastructure. Support personnel that manage applications must often interface with network management support personnel to interface to the network. As a consequence, both application program and network management is labor intensive, lacking effective, automated tools to support the network service needs of application programs. Application programs are basically at the mercy of the static design of the underlying network and configuration parameters to meet their changing needs. There is no way for application programs using the network to directly communicate their dynamic operational requirements to the network.
For the above reasons and others, it would be desirable to have a new system that allows unified, high-level functional access to operational characteristics of a communications network on an application program specific basis. The system should be capable of transparently manipulating protocols and functions in both the management and control planes in response to application program requests. The system should accordingly have direct access to control plane functionality, without having to go through the management plane.